<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="../react18/react.development.js"></script>
    <script src="../react18/react-dom.development.js"></script>
    <script src="../react18/babel.min.js"></script>
  </head>
  <body>
    <div id="app"></div>
    <script type="text/babel">
      /* 
        列表渲染:
          - 列表的数据基本都是一个数组
          - 我们在模板的插值语法区域使用 数组的map方法
          - map方法的回调函数中返回的是当次需要得到虚拟DOM
          - map最终会返回包含所有列表的虚拟DOM组成的数组 交给插值语法
          - 插值语法是可以解析数组的,是把数组的值一个个拿出来展示的
      */

      //拿到了一组数据
      const persons = [
        { id: 1, name: "小王", age: 18 },
        { id: 2, name: "小李", age: 20 },
        { id: 3, name: "大王", age: 22 },
      ];

      /* 
        通过在插值语法的处理,遍历上边的数据后希望得到的值是
        [
          <li>姓名:小王--年龄:18</li>
          <li>姓名:小李--年龄:20</li>
          <li>姓名:大王--年龄:22</li>
        ] 
      */

      const vDOM = (
        <ul>
          {
            persons.map((item) => {
              return <li>姓名:{item.name}--age:{item.age}</li>;
            })
          }
        </ul>
      );

      ReactDOM.createRoot(document.getElementById("app")).render(vDOM);
    </script>
  </body>
</html>
